import RainSymbolInit from "@/components/com-map-baidu/RainSymbol.js";

let RainSymbol;

function ToolMapBaiduInit(BMapGL) {
  RainSymbol = RainSymbolInit();
  const ToolMapBaidu = {
    // 启用编辑
    openEdit(symbol) {
      if (symbol) {
        symbol.enableEditing();
      }
    },
    // 禁用编辑
    closeEdit(symbol) {
      if (symbol) {
        symbol.disableEditing();
      }
    },
    /**
     * 构建icon - 图片
     * icon.w 宽度
     * icon.h 高度
     * icon.x x偏移量
     * icon.y y偏移量
     * icon.imgX 图片偏移量
     * icon.imgY 图片偏移量
     * icon.icon 图标路径
     *
     * 构建icon - 下雨
     * icon.size 大小 200
     * icon.type 类型 rain
     */
    buildIcon(icon) {
      if (!icon) return;
      // 判断为雨滴类型
      if (icon.type === "rain") {
        let size = icon.size || 200;
        return new RainSymbol(
          new BMapGL.Size(size / 3, size / 3),
          new BMapGL.Size(size / 10, size / 10)
        );
      }
      return new BMapGL.Icon(icon.icon, new BMapGL.Size(icon.w, icon.h), {
        // 图标偏移量
        anchor: new BMapGL.Size(icon.x, icon.y),
        // 图片偏移
        imageOffset: new BMapGL.Size(icon.imgX || 0, icon.imgY || 0),
      });
    },
  };

  return ToolMapBaidu;
}

export default ToolMapBaiduInit;
